package gjbsh.bangong.ds.dao;

import gjbsh.bangong.ds.model.单位;
import gjbsh.bangong.ds.model.单位Example;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

public interface 单位Mapper {

	List<Map<String, Object>> findxiaji(@Param("jianzhi") String jianzhi, @Param("deptid") String deptid);
	
	// 根据单位ID查询单位 
	Map<String, Object> findCustomByDeptId(@Param("deptid")String ppDeptId);
	
	// 根据父单位ID查询下级单位
	List<Map<String, Object>> findByParentDeptId(@Param("deptid")String ppDeptId,@Param("deptleixingid")String ppCurrentDanweileixingId);
	
	// 根据单位所属详细部门ID查询部委直属下级单位 
	List<Map<String, Object>> findBelongToOrganByDeptId(@Param("deptid")String ppDeptId);
	
	// 根据单位所属详细部门ID和单位名称查询部委直属下级单位 
	List<Map<String, Object>> findBelongToOrganByDeptIdAndDeptname(@Param("ssxxbumenid") String ppSuosuXiangxibumenId, 
			@Param("deptname") String ppDeptName);
	
	// 根据单位名称查找单位
	List<Map<String, Object>> findCustomByDeptname(@Param("deptname")String ppDeptName);
	
	// 根据单位类型和省份ID和地区ID查询单位
	List<Map<String, Object>> findByDepttypeAndShengfenIdAndDiquId(@Param("depttypelist")List<String> ppDepttypeIdList, 
			@Param("shengfenid")String ppShengfenId, @Param("diquid")String ppDiquId);
	
	// 统计某一省份的单位
	List<Map<String, Object>> statisticsDeptBySheng(@Param("shengfenid") String ppShengfenId);
	
	// 统计所有省份的单位
	List<Map<String, Object>> statisticsDeptOfAllSheng();
	
	// 根据条件查询单位类型为10，15的省份单位
	List<Map<String, Object>> findShengDept(@Param("shengname") String ppShengname);
	
	// 计算某省份分站数
	Object countGongzuozhanFenzhan(@Param("xuliebianma") String ppJianzhiXlbm);
	
	// 统计单位的所属省份和地区是该省份地区的设站单位
	List<Map<String, Object>> statisticsDeptByShengfenIdAndDiquId(@Param("shengfenid") String ppShengfenId, 
			@Param("diquid") String ppDiquId);
	
	// 根据单位名称查找当前登录单位下的（流动站设站单位、工作站总站）
	List<Map<String, Object>> findHeaddeptByDeptname(@Param("deptname") String ppDeptname, @Param("xuliebianma") String ppJianzhiXlbm);
	
	// 根据建制序列编码和单位名称查询下级单位
	List<Map<String, Object>> findSubdeptByXlbianmaAndDeptname(@Param("xuliebianma") String ppXuliebianma,
			@Param("deptname") String ppDeptName);
	
	// 根据单位ID统计该单位的分站情况
	List<Map<String, Object>> statisticsFenzhanByDeptId(@Param("deptid") String ppDeptId);
	
	// 按省份计算所有的设站单位个数（20，25，28）
	List<Map<String, Object>> countAllShezhanDeptGroupbySheng(@Param("shengidlist") List<String> mmShengIdList);
	
	// 计算各省、直辖市各招收类型的招收人数
	List<Map<String, Object>> countZhaoshourenshuGroupbyShengAndLeixing(@Param("starttime") String ppStartTime, 
			@Param("endtime") String ppEndTime);
	
	// 计算各省、直辖市博士后进站身份类型
	List<Map<String, Object>> countJzshenfenGroupbySheng(@Param("starttime") String ppStartTime, 
			@Param("endtime") String ppEndTime);
	
	// 计算各省、直辖市各招收类型的在站人数
	List<Map<String, Object>> countZaizhanrenshuGroupbyShengAndLeixing();

	List<Map<String, Object>> findweifenpeibypiciid(@Param("deptid") String ppDeptId,@Param("piciid") String ppPiciId);
	
    int countByExample(单位Example example);

    int deleteByExample(单位Example example);

    int deleteByPrimaryKey(String 单位id);

    int insert(单位 record);

    int insertSelective(单位 record);

    List<单位> selectByExample(单位Example example);

    单位 selectByPrimaryKey(String 单位id);

    int updateByExampleSelective(@Param("record") 单位 record, @Param("example") 单位Example example);

    int updateByExample(@Param("record") 单位 record, @Param("example") 单位Example example);

    int updateByPrimaryKeySelective(单位 record);

    int updateByPrimaryKey(单位 record);

	List<Map<String, Object>> findShangjiByDeptId(@Param("dengludeptid") String dengludeptid,@Param("beichadeptid") String beichadeptid);

}